package com.micro.ai.files.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.files.entity.FileTag;

import java.util.List;

/**
 * 文件标签服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface FileTagService extends IService<FileTag> {

    /**
     * 创建标签
     */
    FileTag create(FileTag tag);

    /**
     * 更新标签
     */
    FileTag update(String id, FileTag tag);

    /**
     * 删除标签
     */
    void delete(String id);

    /**
     * 增加标签使用次数
     */
    void incrementUsageCount(String id);

    /**
     * 减少标签使用次数
     */
    void decrementUsageCount(String id);

    /**
     * 分页查询标签
     */
    Page<FileTag> pageQuery(int pageNum, int pageSize, String tenantId, String keyword);

    /**
     * 查询所有标签
     */
    List<FileTag> listAll(String tenantId);

    /**
     * 根据标签名称查询
     */
    FileTag getByTagName(String tenantId, String tagName);
}

